package com.rill.service;

import java.util.List;

import com.rill.dao.ArticleDao;
import com.rill.paging.Page;
import com.rill.paging.PageUtil;
import com.rill.paging.Result;
import com.rill.po.Article;

public class ArticleServiceImpl implements ArticleService {
	//需要dao
	private ArticleDao articleDao;

	public ArticleDao getArticleDao() {
		return articleDao;
	}

	public void setArticleDao(ArticleDao articleDao) {
		this.articleDao = articleDao;
	}

	/*添加文章
	 */
	@Override
	public void addArticle(Article article) {
		articleDao.add(article);
	}

	/* 查询所有文章
	 */
	@Override
	public List<Article> queryUserAllArticle(String username) {
		return articleDao.queryUserAllArticle(username);
	}

	/*分页查询用户文章
	 */
	@Override
	public Result showUserArticleByPage(String username, Page page) {
			page = PageUtil.createPage(page,articleDao.queryUserAllCount(username));//page参数由action来提供，PageUtil新建page
			List<Article> list = articleDao.queryByPage(username, page);//返回按照分页辅助类实现的创建的page来返回查询结果
			
			//设置result：包含新创建好的page和返回的list
			Result result = new Result();
			result.setPage(page);
			result.setList(list);
			
			return result;
		}

	/* 分页查所有用户的所有文章
	 */
	@Override
	public Result showArticleByPage(Page page) {
		page = PageUtil.createPage(page,articleDao.queryAllCount());//page参数由action来提供，PageUtil新建page
		List<Article> list = articleDao.queryAllByPage(page);//返回按照分页辅助类实现的创建的page来返回查询结果
		
		//设置result：包含新创建好的page和返回的list
		Result result = new Result();
		result.setPage(page);
		result.setList(list);
		
		return result;
	}

	@Override
	public Article showArticleCountById(int id) {
		return articleDao.queryArticleById(id);
	}
}
